﻿#ifndef JZCO_H_
#define JZCO_H_

#include <QObject>
#include <QTimer>
#include "JZCoCoroutine.h"
#include "JZCoNetwork.h"

#define jzco_await

void jzco_init();
void jzco_yield();
void jzco_sleep(int ms);
void jzco_sleep_uninterrupt(int ms);
void jzco_waitThread(std::function<void()> func);                //开启一个线程执行任务,并等待结束
void jzco_waitCoroutine(const QList<JZCoCoroutinePtr> &co_list); //等待协程执行完毕

//开启一个协程
void jzco_spawn(JZCoCoroutinePtr co_ptr);
JZCoCoroutinePtr jzco_spawn(const std::function<void()> &func);

#endif // ! JZCO_H_
